{\rtf1\ansi\ansicpg1252\deff0\nouicompat\deflang1033\deflangfe1033{\fonttbl{\f0\fswiss\fprq2\fcharset0 Segoe UI;}{\f1\froman\fprq2\fcharset0 Times New Roman;}{\f2\fmodern\fprq1\fcharset0 Courier New;}{\f3\fswiss\fprq2\fcharset0 Calibri;}{\f4\fnil\fcharset2 Symbol;}}
{\colortbl ;\red30\green30\blue30;\red0\green0\blue255;\red5\green99\blue193;}
{\*\listtable 
{\list\listhybrid
{\listlevel\levelnfc23\leveljc0\levelstartat1{\leveltext\'01\'B7;}{\levelnumbers;}\f4\jclisttab\tx0}
{\listlevel\levelnfc23\leveljc0\levelstartat1{\leveltext\'01\'B7;}{\levelnumbers;}\f4\jclisttab\tx0}\listid1 }}
{\*\listoverridetable{\listoverride\listid1\listoverridecount0\ls1}}
{\*\generator Riched20 10.0.22621}{\*\mmathPr\mdispDef1\mwrapIndent1440 }\viewkind4\uc1 
\pard\widctlpar\sb100\sa100\cf1\kerning36\b\f0\fs48 QuickApp\~- ASPNET Core 7 / Angular 16 startup project template\par
\kerning0\b0\fs20 A startup\~\b Angular 16 / ASP.NET Core 7\b0\~(cross-platform)\~\b project template\b0\~with an end-to-end login, user and role management implementation. As well as other common functionalities for\~\b Quick Application Development\b0 .\par
{{\field{\*\fldinst{HYPERLINK "https://twitter.com/kommand"}}{\fldrslt{\ul\cf2\cf2\ul FOLLOW ME}}}}\f0\fs20\~on twitter for important updates \par

\pard\widctlpar\cf0\f1\fs24\par

\pard\widctlpar\sb100\sa100\cf1\b\f0\fs36 INTRODUCING QUICKAPP PREMIUM TEMPLATES\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100\b0\fs20 All features of free version\par
{\pntext\f4\'B7\tab}Angular Material\par
{\pntext\f4\'B7\tab}Reactive forms\par
{\pntext\f4\'B7\tab}Public Registration, Password Recovery & Reset, Email Confirmation\par
{\pntext\f4\'B7\tab}Priority Email Support\par
{\pntext\f4\'B7\tab}Etc.\par

\pard\widctlpar {{\field{\*\fldinst{HYPERLINK "https://www.ebenmonney.com/product/quickapp-pro"}}{\fldrslt{\ul\cf2\cf2\ul\b Get QuickApp PRO}}}}\f0\fs20\~|\~{{\field{\*\fldinst{HYPERLINK "http://quickapp-pro.ebenmonney.com"}}{\fldrslt{\ul\cf2\cf2\ul\b Live Demo}}}}\f0\fs20\~\line {{\field{\*\fldinst{HYPERLINK "https://www.ebenmonney.com/product/quickapp-standard"}}{\fldrslt{\ul\cf2\cf2\ul\b Get QuickApp STANDARD}}}}\f0\fs20\~|\~{{\field{\*\fldinst{HYPERLINK "http://quickapp-standard.ebenmonney.com"}}{\fldrslt{\ul\cf2\cf2\ul\b Live Demo}}}}\f0\fs20\par
\cf0\f1\fs24\par

\pard\widctlpar\sb100\sa100\cf1\b\f0\fs36 This application consists of:\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100\b0\fs20 Template pages using Angular 16 and TypeScript\par
{\pntext\f4\'B7\tab}RESTful API Backend using ASP.NET Core 7 Web API\par
{\pntext\f4\'B7\tab}Database using Entity Framework Core\par
{\pntext\f4\'B7\tab}Authentication based on OpenID Connect\par
{\pntext\f4\'B7\tab}API Documentation using Swagger\par
{\pntext\f4\'B7\tab}Angular CLI for managing client-side libraries\par
{\pntext\f4\'B7\tab}Theming using Bootstrap 5\par

\pard\widctlpar\sb100\sa100\b\fs36 You get the benefits of:\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100\b0\fs20 A complete backend and frontend project structure to build on, with login, user and permission-based role management already integrated\par
{\pntext\f4\'B7\tab}Data Access Layer built with the Repository and Unit of Work Pattern\par
{\pntext\f4\'B7\tab}Code First Database\par
{\pntext\f4\'B7\tab}A RESTful API Design\par
{\pntext\f4\'B7\tab}Angular Directives Guidance\par
{\pntext\f4\'B7\tab}Angular Pipes Guidance\par
{\pntext\f4\'B7\tab}Angular Animations Guidance\par
{\pntext\f4\'B7\tab}Angular Services\par
{\pntext\f4\'B7\tab}Dialog and Notification Services\par
{\pntext\f4\'B7\tab}Configuration Page and Configuration Service\par
{\pntext\f4\'B7\tab}OIDC Service for quick integration of external OpenID providers\par
{\pntext\f4\'B7\tab}Integrated Social logins such as Google, Facebook, Twitter\par
{\pntext\f4\'B7\tab}Integrated Internationalization\par
{\pntext\f4\'B7\tab}Theming with SASS\par
{\pntext\f4\'B7\tab}Ready-to-use email API\par
{\pntext\f4\'B7\tab}Handling Access and Refresh Tokens with WebStorage (Bearer authentication) - No Cookies\par
{\pntext\f4\'B7\tab}CRUD APIs\par
{\pntext\f4\'B7\tab}Responsive Design\par
{\pntext\f4\'B7\tab}Etc.\par

\pard\widctlpar\sb100\sa100\b\fs36 Installation\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100\b0\fs20 [OPTION 1] Clone the\~{{\field{\*\fldinst{HYPERLINK "https://github.com/emonney/QuickApp.git"}}{\fldrslt{\ul\cf2\cf2\ul Git Repository}}}}\f0\fs20\~and edit with your favorite editor. e.g., Visual Studio, Visual Studio Code\par
{\pntext\f4\'B7\tab}[OPTION 2] Install Project template from the\~{{\field{\*\fldinst{HYPERLINK "https://marketplace.visualstudio.com/items?itemName=adentum.QuickApp-ASPNETCoreAngularXProjectTemplate"}}{\fldrslt{\ul\cf2\cf2\ul Visual Studio Gallery}}}}\f0\fs20\~and follow the usual File -> New Project -> Web -> QuickApp - to create a new Project from this template. Lunch with\~\f2 F5\f0\~or\~\f2 Ctrl+F5\f0\~(The usual way)\par

\pard\widctlpar\sb100\sa100\b\fs36 Installation Notes\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100\b0\fs20 When creating a new project please wait for all dependencies to be restored; "dotnet restore" for asp.net project & "npm install" for angular project. When using Visual Studio this is automatic, check the output window or status bar to know that the package/dependencies restore process is complete before launching your program for the first time.\par
{\pntext\f4\'B7\tab}If you get any errors, consider running manually the steps to build the project and note where the errors occur. Open command prompt and do the below steps:\par

\pard 
{\pntext\f0 i.\tab}{\*\pn\pnlvlbody\pnf0\pnindent360\pnstart1\pnlcrm{\pntxta.}}
\nowidctlpar\fi-360\li1080\sb100\sa100 run 'dotnet restore' from the two project folders - Restore NuGet packages\par
{\pntext\f0 ii.\tab}run 'npm install' from the project with package.json - Restore npm packages\par
{\pntext\f0 iii.\tab}Try running the application again - Test to make sure it all works\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100 When running the client(angular) project on a different address/domain from the backend, configure the baseUrl of the client to match that of the server. You do this from environment.ts in the ClientApp/Angular project. Example: baseUrl: "{\cf0{\field{\*\fldinst{HYPERLINK http://yourbackendserver.com }}{\fldrslt{http://yourbackendserver.com\ul0\cf0}}}}\f0\fs20 " OR baseUrl: "{\cf0{\field{\*\fldinst{HYPERLINK http://localhost:5050 }}{\fldrslt{http://localhost:5050\ul0\cf0}}}}\f0\fs20 "\par
{\pntext\f4\'B7\tab}For help and support post in the support forum\par
{\pntext\f4\'B7\tab}For bug reports open an issue on GitHub\par

\pard\widctlpar\sb100\sa100\b\fs36 Login\par
\b0\fs20 LOGIN WITH USERNAME OR EMAIL ADDRESS\par

\pard 
{\listtext\f0\u10625?\tab}\ls1\nowidctlpar\fi-360\li1440\sa100\b Default Administrator Account\b0\par

\pard 
{\listtext\f0\u10625?\tab}\ls1\ilvl1\nowidctlpar\fi-360\li2160\sb100\sa100 Username: admin\par
{\listtext\f0 1\tab}Email: admin@ebenmonney.com\par
{\listtext\f0 2\tab}Password: tempP@ss123\par

\pard 
{\listtext\f0\u10625?\tab}\ls1\nowidctlpar\fi-360\li1440\sb100\sa100\b Default Standard Account\b0\par

\pard 
{\listtext\f0\u10625?\tab}\ls1\ilvl1\nowidctlpar\fi-360\li2160\sb100\sa100 Username: user\par
{\listtext\f0 1\tab}Email: user@ebenmonney.com\par
{\listtext\f0 2\tab}Password: tempP@ss123\par

\pard\widctlpar\sb100\sa100\b\fs36 Documentation\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100 {\b0\fs20{\field{\*\fldinst{HYPERLINK "https://www.ebenmonney.com/quickapp"}}{\fldrslt{\ul\cf2\cf2\ul Overview of QuickApp}}}}\b0\f0\fs20\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://go.microsoft.com/fwlink/?LinkId=518008"}}{\fldrslt{\ul\cf2\cf2\ul Conceptual overview of what is ASP.NET Core}}}}\f0\fs20\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://docs.microsoft.com/en-us/ef/#pivot=efcore"}}{\fldrslt{\ul\cf2\cf2\ul Working with Data}}}}\f0\fs20\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://angular.io/guide/quickstart"}}{\fldrslt{\ul\cf2\cf2\ul Angular documentation overview}}}}\f0\fs20\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://cli.angular.io"}}{\fldrslt{\ul\cf2\cf2\ul Getting started with Angular CLI}}}}\f0\fs20\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://getbootstrap.com/docs/5.2/getting-started/introduction"}}{\fldrslt{\ul\cf2\cf2\ul Introduction to Bootstrap}}}}\f0\fs20\par

\pard\widctlpar\sb100\sa100\b\fs36 Contribution\par

\pard\widctlpar\b0\fs20 QuickApp is actively maintained by\~{{\field{\*\fldinst{HYPERLINK "https://github.com/emonney"}}{\fldrslt{\ul\cf2\cf2\ul Ebenezer Monney}}}}\f0\fs20\~on\~{{\field{\*\fldinst{HYPERLINK "https://github.com/emonney/QuickApp"}}{\fldrslt{\ul\cf2\cf2\ul GitHub}}}}\f0\fs20 . You can support it by\par

\pard{\pntext\f4\'B7\tab}{\*\pn\pnlvlblt\pnf4\pnindent360{\pntxtb\'B7}}\nowidctlpar\fi-360\li720\sb100\sa100 Submitting your changes/improvements/features using pull requests\par
{\pntext\f4\'B7\tab}Suggesting ideas or areas of improvements\par
{\pntext\f4\'B7\tab}Encouraging the developers by rating it/starring it\par
{\pntext\f4\'B7\tab}Linking to it and recommending it to others\par
{\pntext\f4\'B7\tab}{{\field{\*\fldinst{HYPERLINK "https://paypal.me/ebenmonney"}}{\fldrslt{\ul\cf2\cf3\ul Making a Donation}}}}\f0\fs20  \par

\pard\widctlpar\sb100\sa100\b\fs36 License\par
\b0\fs20 Released under the\~{{\field{\*\fldinst{HYPERLINK "https://github.com/emonney/QuickApp/blob/master/LICENSE"}}{\fldrslt{\ul\cf2\cf2\ul MIT License}}}}\f0\fs20 .\par

\pard\widctlpar {{\field{\*\fldinst{HYPERLINK "mailto:contact@ebenmonney.com"}}{\fldrslt{\ul\cf2\cf2\ul YOUR FEEDBACK}}}}\f0\fs20\~|\~{{\field{\*\fldinst{HYPERLINK "https://twitter.com/kommand"}}{\fldrslt{\ul\cf2\cf2\ul FOLLOW ME}}}}\f0\fs20\par

\pard\widctlpar\sa160\sl252\slmult1\cf0\f3\fs22\par
}
 